2013-10-29 24 views
6

OWIN kullanarak kafamı almaya çalışıyorum. İki MVC 5 projesi oluşturdum. Biri Aspnet.Identity ve diğeri kullanılarak kimlik doğrulama ile boş bir proje olarak başladı. MVC 5 Giriş Sayfasına Yönlendirme OWIN ile Çalışmıyor

I emptyp projesi için aşağıdaki eklendi: görünümü, bir Giriş etkiye sahip

  • Hesap denetleyicisi ve coresponding

  • Startup.cs ve

başka kısmi Startup.cs
public partial class Startup 
{ 
     public void ConfigureAuth(IAppBuilder app) 
     { 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = "ApplicationCookie", 
       LoginPath = new PathString("/Account/Login") 
      }); 
     } 
    } 

Ana Sayfa denetleyicisindeki Hakkında eylemini [Yazarla] dekore ettim her iki projede de öznitelik.

İlk projeyi çalıştırdığımda ve oturum açmadan önce Hakkında ekranına gittiğimde, beklendiği gibi giriş işlemine yönlendirir. İkinci proje için de aynısını yaptığımda, yönlendirme yerine "HTTP Hatası 401.0 - Yetkisiz" olsun.

İkincisinin bu şekilde davranmasına neden olan herhangi bir fikrin var mı?

+1

Eğer web.config karşılaştırıldı mı (durumunda, Microsoft sonradan bana veriyorsun değiştirir) iki proje arasında? –

+0

İki web.config dosyasını karşılaştırdım, ancak tekrar yapacağım ve geri bildireceğim ... – Jeff

+0

@AlexDresko, yardımlarınız için teşekkürler. Dün özlediğim web.config dosyasında bazı farklılıklar buldum. Maalesef sorunu çözmeye yardımcı olmadı. – Jeff

cevap

5

İki yeni benzer proje oluşturdum ve hatayı yeniden üretebildim.

Boş projede, Microsoft.Owin.Host.SystemWeb (Nuget aracılığıyla) yüklemek zorunda kaldım ve bunu bir kez yaptım, Startup.cs sınıfımda bir sürü hata alıyordum. Bu ile sona erdi: Sonunda

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

     public void ConfigureAuth(IAppBuilder app) 
     { 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = "ApplicationCookie", 
       LoginPath = new PathString("/Account/Login") 
      }); 
     } 
    } 
} 

, şimdi ben [Authorize] özniteliği ile dekore Hakkında() yöntemini çağırdığınızda benim Girişi görünümdeyseniz/vurabiliyor değilim.

Bu yardımcı olur umarız! Vince

+2

Bunu denemek için zaman ayırdığınız için teşekkürler. Tekrar temizlemeye başladım ve sonunda iki farklı problemi takip edebildim. Bunu denediğim bir projede CookieAuthenticationOptions'ta "AuthenticationMode = AuthenticationMode.Passive" vardı. Bu, denediğim başka bir şeyden geriye kaldı. Başka bir projede Startup.ConfigureAuth() öğesini Startup.Configuration() 'dan çağırmayı unuttum! Yani temelde iki dikkatsiz hata. Ben yolda geri ve bir sonraki sayı anlamaya çalışıyorum .... – Jeff

+0

Nuget güncellemesi benim için tamir etti – Scott

+0

Bu bir hata o zaman? – Jakov

6

ben de "yazım hatası" işleyicisi hem sol ekstra güvenlik için ASP.NET MVC 5 Web.config: "FormsAuthenticationModule" or "FormsAuthentication"

<system.webServer> 
    <modules> 
     <remove name="FormsAuthentication" /> 
    </modules> 
</system.webServer> 

Başına

<system.webServer> 
    <modules> 
    <remove name="FormsAuthenticationModule" /> 
    <remove name="FormsAuthentication" /> 
    </modules> 
</system.webServer> 
+0

Bu kod satırı, User

+0