0

我正在使用身份服务器 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);

    }`

并添加了 2 个视图 About.cshtml 和 Index.cshtml。如您所见,关于操作具有 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);
        });

我正在使用 CustomerUserService 示例,因为我想使用 WSfederation。因此 ADFS 将向身份服务器提供声明,然后身份服务器应将这些声明返回到关于视图。有人能帮我一下吗。

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 回答