2015-02-02 23 views
5

Tôi nhận được một lỗi khi tôi đang cố gắng để chạy trang của tôi nói rằng,Tên 'ConfigureAuth' không tồn tại trong CONTEX hiện

Tên 'ConfigureAuth' không tồn tại trong hiện tại ngữ cảnh

trong Stratup Lớp học của tôi. Tôi chắc rằng tất cả thư viện AspNet Identity đã được cài đặt. Tôi cần phải làm gì tiếp theo, để cố gắng sửa lỗi này?

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

ở đâu bạn nhận được lỗi? Về xây dựng, chạy trong IIS, chạy trong IIS Express, chạy trong Cassini, chạy trên Linux thông qua mod-mono .... ?? –

Trả lời

4

Nếu bạn đang sử dụng mặc định Visual Studio mẫu dự án, phương pháp ConfigureAuth có thể được tìm thấy trong lớp phần Startup.Auth.cs. Vì vậy, hãy chắc chắn rằng bạn đã không phá vỡ bất cứ điều gì khi sửa đổi cấu trúc dự án.

Đây là một ví dụ về ConfigureAuth phương pháp:

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

đối với tôi đó là vấn đề không gian tên, kiểm tra [this] (http://stackoverflow.com/a/30074236/2218697), hy vọng sẽ giúp ai đó. – stom

+0

Tôi gặp vấn đề tương tự. Tôi đã sử dụng tuyên bố sử dụng cho sự khác biệt không gian tên nhưng không thành công. Điều tôi không hiểu là nếu không gian tên cho cả hai lớp Khởi động một phần đã được tạo ngay từ đầu với việc sử dụng mẫu hơn là lý do lỗi? Nó sử dụng tên của giải pháp cho phần Startup.cs và tên của dự án cho phần Startup.Auth.cs – Edward

4

Tôi có vấn đề tương tự, khắc phục vấn đề tôi đã xóa .App_Start từ namespace trong tập tin Startup.Auth.cs. Sau đó tôi có thể nhìn thấy tài liệu tham khảo.

0

Đảm bảo khi bạn tạo dự án ban đầu không có dấu cách trong tên. ví dụ: ứng dụng của tôi được gọi là "Kiểm tra DevOps" đã gây ra lỗi cho tôi khi chạy nó. tôi tái tạo nó như là "DevopsTest" và không còn có những vấn đề

0

Nó là một trong hai:

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

HOẶC

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

Hoặc đổi tên OwinStartupAttribute để OwinStartup HOẶC Cấu hình để ConfigureAuth

1

Vui lòng lưu ý rằng hai lớp học một phần (Startup.Auth.csStartup.cs) phải ở trong cùng không gian tên đó là gốc rễ của dự án, chỉ cần thay đổi namespace của Startup.Auth.cs đến cùng không gian tên của Startup.cs

Các vấn đề liên quan