使用[Authorize]属性时,MVC应用程序如何知道重定向用户的位置?

时间:2015-06-18 19:42:13

标签: c# asp.net-mvc asp.net-core-mvc

如果您使用身份验证设置MVC应用并使用[Authorize]标记,它会自动将未经身份验证的用户重定向到登录视图。

但是它如何知道页面登录页面?我查看了一个示例应用,但无法找到任何明显的内容。

修改

我忘了提到我使用的是MVC6。

2 个答案:

答案 0 :(得分:1)

您可以在web.config中找到它,在

➜  ~  npm install -g react-native-cli
npm ERR! Darwin 14.3.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "react-native-cli"
npm ERR! node v0.12.4
npm ERR! npm  v2.10.1
npm ERR! path /Users/bbarclay/.node/bin/react-native
npm ERR! code EACCES
npm ERR! errno -13

npm ERR! Error: EACCES, unlink '/Users/bbarclay/.node/bin/react-native'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES, unlink '/Users/bbarclay/.node/bin/react-native']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/bbarclay/.node/bin/react-native' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! error rolling back Error: EACCES, unlink '/Users/bbarclay/.node    /bin/react-native'
npm ERR! error rolling back     at Error (native)
npm ERR! error rolling back  { [Error: EACCES, unlink '/Users/bbarclay/.node/bin/react-native']
npm ERR! error rolling back   errno: -13,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/Users/bbarclay/.node/bin/react-native' }

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/bbarclay/npm-debug.log
➜  ~  sudo npm install -g react-native-cli                
Password:
/Users/bbarclay/.node/bin/react-native -> /Users/bbarclay/.node/lib/node_modules/react-native-cli/index.js
react-native-cli@0.1.4 /Users/bbarclay/.node/lib/node_modules/react-native-cli
└── prompt@0.2.14 (revalidator@0.1.8, pkginfo@0.3.0, read@1.0.6, winston@0.8.3, utile@0.2.1)
➜  ~  react-native init AwesomeProject
zsh: command not found: react-native

进一步阅读:Jon Galloway: Looking at how the ASP.NET MVC Authorize interacts with ASP.NET Forms Authorization

答案 1 :(得分:1)

根据您用于创建应用的模板,如果您查看App_Start文件夹,则会有一个名为Startup.Auth.cs的文件。其中的代码设置了身份验证。这是默认MVC模板中的代码:

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Account/Login"),
    Provider = new CookieAuthenticationProvider
    {
        // Enables the application to validate the security stamp when the user logs in.
        // This is a security feature which is used when you change a password or add an 
        //external login to your account.  
        OnValidateIdentity = SecurityStampValidator
            .OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                validateInterval: TimeSpan.FromMinutes(30),
                regenerateIdentity: (manager, user) => user
                    .GenerateUserIdentityAsync(manager))
    }
});