2016-03-30 11 views
7

Mam dwa serweryPozwól każdemu użytkownikowi dostępu 'signalr/piast' bez poświadczeń, używając Cors (serwer działa uwierzytelnianie Windows)

  1. SignalR hosta (Windows uwierzytelnianie, IIS)
  2. Reszta stronie internetowej host (uwierzytelnianie formularzy, IIS)

Ustawiłem to wszystko i działa z longpolling w Chrome. (1) pyta o nazwę użytkownika i hasło podczas korzystania z przeglądarki Firefox i nawigację pod numer https://localhost:44301/signalr/hubs.

(1) korzysta z uwierzytelniania systemu Windows. Starałem się unikać uwierzytelniania, wykonując następujące czynności w web.config:

<location path="signalr"> 
    <system.web> 
    <authorization> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 

Ale SignalR nie jest droga, ponieważ ten jest generowany automatycznie. Próbowałem również to zrobić, aby odsłonić piast, bezskutecznie:

<location path="~/Hubs"> 
    <system.web> 
    <authorization> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 

Czy ktoś może mi pomóc znaleźć sposób, aby usunąć autoryzację od https://localhost:12321/signalr/ *? (Obejmuje to wszystko signalr/negocjuj połączeń ++ również)

Odpowiedz

2

Rozwiązałem to, zmieniając przesłanki problemu.

Teraz cały serwer jest dostępny anonimowo, ale ścieżki, które wymagają uwierzytelniania systemu Windows, zostały określone samodzielnie.

przykład jak kontrolerów że potrzebne zabezpieczenie wygląda następująco:

<location path="#####.ashx"> 
<system.webServer> 
    <security> 
    <authentication> 
     <anonymousAuthentication enabled="false"/> 
     <windowsAuthentication enabled="true"/> 
    </authentication> 
    <authorization> 
     <remove users="?" roles="" verbs="" /> 
     <add accessType="Deny" users="?" /> 
    </authorization> 
    </security> 
</system.webServer> 
< /location> 

i ogółu ustawienia na serwerze:

<system.webServer> 
    <security> 
     <authentication> 
     <anonymousAuthentication enabled="true"/> 
     <windowsAuthentication enabled="true"/> 
     </authentication> 
     <authorization> 
     <add accessType="Allow" users="?" /> 
     </authorization> 
     <requestFiltering> 
     <!--Auction searches with 250 results generates slightly longer string than standard setting of 2048--> 
     <requestLimits maxQueryString="3072" /> 
     </requestFiltering> 
    </security> 
    </system.webServer> 

to może nie być dobrym rozwiązaniem dla wszystkich, ale pracował dla mnie ... :)


Jako uwaga: podczas pracy z tym również walczył z IIS Express i był w stanie ustawić uwierzytelnianie systemu Windows w web.config w ogóle. Ten post bardzo mi pomógł ->IIS Express Windows Authentication

2

Spróbuj

<allow users="?"/> 

ponieważ umożliwia anonimowe, z gwiazdką "*" pozwolić "Wszyscy użytkownicy".

+0

Z pewnością wyobrażam sobie, że "Wszyscy użytkownicy" obejmują również "anonimowych" użytkowników ... jednak problem nie jest? lub *, to fakt, że "ścieżka lokalizacji" nie istnieje .. –

+0

Tytuł powiedział Usuń Auth, najszybszą rzeczą w mojej głowie było po prostu pozwolić anonimowy. – Froxer

+0

Dzięki za próbę ... Zastanowię się nad zmianą tytułu ... –

Powiązane problemy