Я использую образец CustomUserService для Identity server v3. Я добавил домашний контроллер, как показано ниже: `public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); }
[Authorize]
public ActionResult About()
{
//ViewBag.Message = "Your application description page.";
//return View();
return View((User as ClaimsPrincipal).Claims);
}`
И добавлено 2 представления About.cshtml и Index.cshtml. Как видите, действие About имеет атрибут Authorize. Поэтому, когда я перехожу к «О программе», я должен быть перенаправлен на страницу входа в систему Identity Server V3, однако этого не происходит. Мой полный файл startup.cs выглядит следующим образом:
public void Configuration(IAppBuilder app)
{
LogProvider.SetCurrentLogProvider(new DiagnosticsTraceLogProvider());
app.Map("/core", coreApp =>
{
var factory = InMemoryFactory.Create(
clients: Clients.Get(),
scopes: Scopes.Get());
// different examples of custom user services
var userService = new RegisterFirstExternalRegistrationUserService();
//var userService = new ExternalRegistrationUserService();
//var userService = new EulaAtLoginUserService();
//var userService = new LocalRegistrationUserService();
factory.UserService = new Registration<IUserService>(resolver => userService);
var options = new IdentityServerOptions
{
//IssuerUri = "https://idsrv3.com",
IssuerUri = "https://localhost:44333/",
SiteName = "Thinktecture IdentityServer3 - CustomUserService",
//SigningCertificate = LoadCertificate(),
SigningCertificate = Certificate.Get(),
Factory = factory,
CorsPolicy = CorsPolicy.AllowAll,
AuthenticationOptions = new Thinktecture.IdentityServer.Core.Configuration.AuthenticationOptions
{
IdentityProviders = ConfigureAdditionalIdentityProviders,
LoginPageLinks = new LoginPageLink[] {
new LoginPageLink{
Text = "Register",
//Href = "~/localregistration"
Href = "localregistration"
}
}
},
EventsOptions = new EventsOptions
{
RaiseSuccessEvents = true,
RaiseErrorEvents = true,
RaiseFailureEvents = true,
RaiseInformationEvents = true
}
};
coreApp.UseIdentityServer(options);
});
Я использую пример CustomerUserService, потому что хочу использовать WSfederation. Таким образом, ADFS будет предоставлять утверждения серверу идентификации, а сервер идентификации, в свою очередь, должен возвращать эти утверждения в представление «О программе». Может ли кто-нибудь помочь мне здесь.