0

Я использую образец UserUserService сервера Identity v3. Я добавил домашний контроллер, как показано ниже - `HomeController общественного класса: контроллер { // // GET:/Главная/ общественного ActionResult Index() { возвращение View(); }Использование образца customuserservice Identity Server V3 в MVC не может перенаправить на страницу входа

[Authorize] 
    public ActionResult About() 
    { 
     //ViewBag.Message = "Your application description page."; 

     //return View(); 
     return View((User as ClaimsPrincipal).Claims); 

    }` 

И добавил 2 просмотров About.cshtml и Index.cshtml. Как вы видите, действие имеет атрибут 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 будет предоставлять заявки на сервер идентификации, и, в свою очередь, сервер Identity должен вернуть эти претензии в «О представлении». Может кто-нибудь мне помочь.

ответ

2

Я столкнулся с аналогичной ситуацией, когда были ошибки во время инициализации сервера удостоверений. Я включил протоколирования в Web.config:

http://identityserver.github.io/Documentation/docs/configuration/logging.html

<system.diagnostics> 
     <trace autoflush="true" indentsize="4"> 
     <listeners> 
     <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="d:\logs\STS.log" /> 
     <remove name="Default" /> 
     </listeners> 
     </trace> 
    </system.diagnostics> 

Бревна показал мне, что длина ключа моего сертификата было меньше, чем 2048 бит. Возможно, вы столкнулись с другой ошибкой, которая также регистрируется.