2016-11-04 19 views
1

MVC Webプロジェクトから奇妙な動作が起こっています。403禁止されたエラー。 Cookie認証を使用したMVC 5 Webプロジェクト

私はMVC 5と.net4.6.1を使用しています。認証はCookie認証を使用します。

マイパブリッシュオプションは、更新可能オプションをTrueに設定してPreCompileします。

ウェブアプリケーションを公開すると、公開をクリックしてフォルダの内容を取得し、CloudServer(IIS 8.5)にコピーします。

すべては何らかのポイントまで見つけられます(正確に言うと(カップル時間))403エラーが発生しており、webappを再発行する必要があります。

すべてのアイデア何が問題なのですか?

マルクス

UPDATE 1

public partial class Startup 
{ 
    // Anwendung für die Verwendung von "OAuthAuthorization" aktivieren. Anschließend können Sie Ihre Web-APIs sichern. 
    static Startup() 
    { 
     PublicClientId = "web"; 

     OAuthOptions = new OAuthAuthorizationServerOptions 
     { 
      TokenEndpointPath = new PathString("/Token"), 
      AuthorizeEndpointPath = new PathString("/Account/Authorize"), 
      Provider = new ApplicationOAuthProvider(PublicClientId), 
      AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60), 
      AllowInsecureHttp = true 
     }; 
    } 

    public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; } 

    public static string PublicClientId { get; private set; } 

    // Weitere Informationen zum Konfigurieren der Authentifizierung finden Sie unter "http://go.microsoft.com/fwlink/?LinkId=301864". 
    public void ConfigureAuth(IAppBuilder app) 
    { 
     // Konfigurieren des db-Kontexts, des Benutzer-Managers und des Anmelde-Managers für die Verwendung einer einzelnen Instanz pro Anforderung. 
     app.CreatePerOwinContext(ApplicationDbContext.Create); 
     app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); 
     app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); 

     // Anwendung für die Verwendung eines Cookies zum Speichern von Informationen für den angemeldeten Benutzer aktivieren 
     app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      LoginPath = new PathString("/Account/Login"), 
      ExpireTimeSpan = TimeSpan.FromMinutes(30), 
      LogoutPath = new PathString("/Account/LogOff"), 
      Provider = new CookieAuthenticationProvider 
      { 
       // Aktiviert die Anwendung für die Überprüfung des Sicherheitsstempels, wenn sich der Benutzer anmeldet. 
       // Dies ist eine Sicherheitsfunktion, die verwendet wird, wenn Sie ein Kennwort ändern oder Ihrem Konto eine externe Anmeldung hinzufügen. 
       OnValidateIdentity = SecurityStampValidator 
      .OnValidateIdentity<ApplicationUserManager, ApplicationUser, Guid>(
       validateInterval: TimeSpan.FromMinutes(60), 
       regenerateIdentityCallback: (manager, user) => 
        user.GenerateUserIdentityAsync(manager), 
       getUserIdCallback: (id) => new Guid((id.GetUserId()))) 
      } 
     }); 
     // Ein Cookie zum vorübergehenden Speichern von Informationen zu einem Benutzer verwenden, der sich mit dem Anmeldeanbieter eines Drittanbieters anmeldet 
     app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 

     // Aktiviert die Anwendung für das vorübergehende Speichern von Benutzerinformationen beim Überprüfen der zweiten Stufe im zweistufigen Authentifizierungsvorgang. 
     app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(60)); 

     // Aktiviert die Anwendung für das Speichern der zweiten Anmeldeüberprüfungsstufe (z. B. Telefon oder E-Mail). 
     // Wenn Sie diese Option aktivieren, wird Ihr zweiter Überprüfungsschritt während des Anmeldevorgangs auf dem Gerät gespeichert, von dem aus Sie sich angemeldet haben. 
     // Dies ähnelt der RememberMe-Option bei der Anmeldung. 
     app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); 

     // Anwendung für die Verwendung eines Trägertokens zum Authentifizieren von Benutzern aktivieren 
     app.UseOAuthBearerTokens(OAuthOptions); 

     // Auskommentierung der folgenden Zeilen aufheben, um die Anmeldung mit Anmeldeanbietern von Drittanbietern zu ermöglichen 
     //app.UseMicrosoftAccountAuthentication(
     // clientId: "", 
     // clientSecret: ""); 

     //app.UseTwitterAuthentication(
     // consumerKey: "", 
     // consumerSecret: ""); 

     //app.UseFacebookAuthentication(
     // appId: "", 
     // appSecret: ""); 

     //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() 
     //{ 
     // ClientId = "", 
     // ClientSecret = "" 
     //}); 
    } 
} 
+0

403エラーが表示されたら?エラーメッセージの詳細と、エラーが再び発生したときに行った操作を含めてください。 –

+0

サブコードはありますか? – Silvermind

+0

セッションタイムアウトや期限切れのCookieが原因で、ログインページへのリダイレクトが正しく機能しない可能性がありますか? –

答えて

1

は私がクラッシュを引き起こしたAssemblyinfoでミスを犯しました。

//Correct 
[assembly: AssemblyCulture("")] 

//Caused the Crash 
[assembly: AssemblyCulture("de-DE")] 
+1

あなたは、間違いが何であるかを説明することによって、少なくともこの問題の他者を助けようとすることができます。この回答は、受け入れられた評価を除いて、何の情報もありません。 – ProfK

+0

編集した返信 –

+0

そして私はあなたに投票しました。ありがとう! – ProfK

関連する問題