名称' ConfigureAuth#39;在当前上下文中不存在

时间:2015-02-02 04:47:10

标签: c# asp.net-mvc asp.net-mvc-4 razor owin

我尝试运行自己的网页时遇到错误,

  

名称' ConfigureAuth'在当前上下文中不存在

在我的Stratup班级。我确定已安装所有AspNet Identity个库。接下来我需要做些什么来尝试解决这个问题?

using Microsoft.Owin;
using Owin;
[assembly: OwinStartupAttribute(typeof(project_name.Startup))]
namespace project_name
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
     }
}

6 个答案:

答案 0 :(得分:7)

如果您使用默认的Visual Studio项目模板,则可以在部分类ConfigureAuth中找到Startup.Auth.cs方法。因此,请确保在修改项目结构时没有破坏任何内容。

这是ConfigureAuth方法的示例:

// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
    // Configure the db context and user manager to use a single instance per request
    app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

    // Enable the application to use a cookie to store information for the signed in user
    // and to use a cookie to temporarily store information about a user logging in with a third party login provider
    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

    // Configure the application for OAuth based flow
    PublicClientId = "self";
    OAuthOptions = new OAuthAuthorizationServerOptions
    {
        TokenEndpointPath = new PathString("/api/Token"),
        Provider = new ApplicationOAuthProvider(PublicClientId),
        AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
        AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
        AllowInsecureHttp = true
    };

    // Enable the application to use bearer tokens to authenticate users
    app.UseOAuthBearerTokens(OAuthOptions);
}

答案 1 :(得分:7)

我有类似的问题,为了解决我在Startup.Auth.cs文件中从名称空间中删除.App_Start的问题。之后,我能够看到参考。

答案 2 :(得分:2)

它是:

    [assembly: **OwinStartup**(typeof(Project-Name.Startup))]
    namespace project-name
    {
        public partial class Startup
        {
            public void **Configuration**(IAppBuilder app)
                    {

OR

    [assembly: **OwinStartupAttribute**(typeof(Project-Name.Startup))]
    namespace project-name
    {
        public partial class Startup
        {
            public void **ConfigureAuth**(IAppBuilder app)
                    {

将OwinStartupAttribute重命名为OwinStartup 或配置到ConfigureAuth

答案 3 :(得分:1)

请注意,两个部分类( Startup.Auth.cs Startup.cs )应位于同一名称空间中,该名称空间是项目的根目录,只需将 Startup.Auth.cs 的命名空间更改为 Startup.cs

的相同命名空间

答案 4 :(得分:0)

确保最初创建项目时名称中没有空格。 例如我的应用程序被称为&#34; DevOps Test&#34;我跑的时候给了我错误。 我将它重新创建为&#34; DevopsTest&#34;并且不再有这些问题

答案 5 :(得分:0)

命名空间PAYOnline.App_Start

仅删除App_Start名称空间PAYOnline =>一切顺利