The name 'ConfigureAuth' does not exist in

2019-04-06 17:44发布

问题:

I'm getting an error when I'm attempting to run my page says that,

The name 'ConfigureAuth' does not exist in the current context

in my Stratup Class. I'm sure all AspNet Identity libraries are installed. What do I need to do next, to try to fix this?

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);
        }
     }
}

回答1:

If you are using default Visual Studio project template, the ConfigureAuth method could be found in partial class Startup.Auth.cs. So make sure you didn't break anything when modifying project structure.

This is an example of ConfigureAuth method:

// 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);
}


回答2:

I had similar issue, To fix the issue I removed .App_Start from namespace in Startup.Auth.cs file. After that I was able to see the reference.



回答3:

It is either:

    [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)
                    {

Either rename OwinStartupAttribute to OwinStartup OR Configuration to ConfigureAuth



回答4:

Kindly I note that the two partial classes (Startup.Auth.cs and Startup.cs) should be in the same namespace which is the root of the project, just change the namespace of Startup.Auth.cs to the same namespace of the Startup.cs



回答5:

Make sure when you originally create the project that there are no spaces in the name. e.g. my app was called "DevOps Test" which was giving me errors when I ran it. I recreated it as "DevopsTest" and no longer had these issues