0

Identity サーバー v3 の CustomUserService サンプルを使用しています。以下のようにホームコントローラーを追加しました - `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);

    }`

また、About.cshtml と Index.cshtml の 2 つのビューを追加しました。ご覧のとおり、About アクションには Authorize 属性があります。そのため、[About] に移動すると、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);
        });

WSfederation を使用したいので、CustomerUserService サンプルを使用しています。そのため、ADFS は ID サーバーにクレームを提供し、次に ID サーバーはそれらのクレームを About ビューに返す必要があります。誰でもここで私を助けることができますか?

4

1 に答える 1

2

Identity Server の初期化中にエラーが発生したときに、同様の状況に遭遇しました。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 ビット未満であることがわかりました。同様にログに記録される別のエラーに遭遇した可能性があります。

于 2015-04-02T14:47:32.417 に答える