授权在ASP.NET MVC 5中不起作用

免责声明:这是我第一次使用ASP.NET MVC 5

我不知道为什么它不起作用。 我无法让我的MVC5应用程序授权用户。 我在之前的版本(2,3和4)中完成了这个工作,但我似乎无法在OWIN中工作。

我使用启用了所需功能的本地IIS:

IIS功能

编辑

我在IIS上使用SSL并在C#上使用RequireHttps

这是代码:

protected void Application_Start()
{
    GlobalFilters.Filters.Add(new AuthorizeAttribute());
}

Startup.Auth.cs

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/admin/account/login")
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
app.UseGoogleAuthentication();

尽管我使用全球授权,但我试图“强制”它来查看是否存在这个问题:

public class HomeController : Controller
{
    [Authorize]
    public ActionResult Index()
    {
        return View();
    }
}

没有运气......我不确定这是否有必要与OWIN,但我甚至尝试启用表单身份验证:

<authentication mode="Forms" />

编辑[2]

那么,我发现了这个问题...... IIS! 最后! 现在,有谁知道如何解决这个问题? 我需要什么特别的东西来在IIS上运行OWIN? 我现在可以工作,但很快我就不得不部署应用程序,并可能会在服务器中遇到同样的问题...

我已经阅读过这些内容:

如何使用AspNet.Identity以Asp.Net MVC5 RTM位登录/验证用户?

授权属性不工作MVC 5

有任何想法吗?


由于您的应用程序使用IIS运行,因此请尝试将Microsoft.Owin.Host.SystemWeb nuget包添加到您的应用程序中。


试试这篇文章,这对我OWIN安装很有帮助。 我不确定您是否使用了声明,因为您没有在问题中显示它,这对于创建身份验证票证来说至关重要

另外,当您使用SSL时,如果CookieSecureOption仍然不起作用,请注意CookieSecure属性

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/admin/account/login")
    CookieSecure = CookieSecureOption.Never
});

我希望这会有所帮助

链接地址: http://www.djcxy.com/p/83641.html

上一篇: Authorization not working in ASP.NET MVC 5

下一篇: Xcode6 code signing required for referenced frameworks?