【问题标题】:Why using UseCookieAuthentication cause exception?为什么使用 UseCookieAuthentication 会导致异常?
【发布时间】:2015-05-02 18:19:24
【问题描述】:

asp.net 5 mvc 6,Visual Studio 2015 RC

为什么当我在(调试/发布)中运行应用程序时,这段代码会导致异常

app.UseCookieAuthentication(options =>
{
        options.AuthenticationType = "Cookies";
        options.LoginPath = new PathString("/Action/Login");
});

System.IO.FileNotFoundException

无法加载文件或程序集 Microsoft.Framework.Logging.ILoggerFactory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 或其依赖项之一。找不到指定的文件。

我的 nugets 包:

"Microsoft.Framework.Logging": "1.0.0-beta4",
"Microsoft.Framework.Logging.Console": "1.0.0-beta4",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
"Microsoft.AspNet.Mvc": "6.0.0-beta4",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta4",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta4",
"Microsoft.AspNet.Security.Cookies": "1.0.0-beta3",
"Microsoft.AspNet.Security": "1.0.0-beta3",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta4",
"Microsoft.Framework.DependencyInjection": "1.0.0-beta4",
"Microsoft.Framework.OptionsModel": "1.0.0-beta4",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta4",
"Npgsql": "2.2.5"

【问题讨论】:

    标签: c# asp.net visual-studio-2015 asp.net-core-mvc


    【解决方案1】:

    删除安全包并添加:

    “Microsoft.AspNet.Authentication.Cookies”:“1.0.0-beta4”

    并且,在登录/注册控制器中

    var claims = new List<Claim> {new Claim(ClaimTypes.Name, model.Username)};            
    Context.Response.SignIn(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(new ClaimsIdentity(claims, "Cookies")));
    

    beta5 及更高版本:

    var claims = new List<Claim> {new Claim(ClaimTypes.Name, model.Username)};            
    await Context.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(new ClaimsIdentity(claims, "Cookies")));
    

    【讨论】:

    • 我试过这个,它编译但它似乎并没有真正让我登录,受 [Authorize] 属性保护的操作仍然返回 401。这对你有用吗?
    • app.UseCookieAuthentication(options => { options.AutomaticAuthentication = true; options.LoginPath = new PathString("/Account/Login"); });
    • var claim = new List { new Claim(ClaimTypes.Name, USERNAME) }; Context.Response.SignIn("Cookies", new ClaimsPrincipal(new ClaimsIdentity(claims, "Cookies")));这对我有用。
    • 我缺少 options.AutomaticAuthentication = true;它现在可以工作了,谢谢
    • 这会绕过登录屏幕吗?
    猜你喜欢
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2023-03-21
    • 2012-04-20
    • 2012-10-29
    相关资源
    最近更新 更多