Ich folgte Anweisungen auf this blog post versucht, anonymen Zugriff für die Homepage zu ermöglichen und an Google umleiten, wenn auf/Admin-Seite mit dieser authorization.json zugreifen.Autorisierungsregeln in Azure App Service funktioniert nicht
{
"routes": [
{
"path_prefix": "/",
"policies": { "unauthenticated_action": "AllowAnonymous" }
},
{
"path_prefix": "/Admin",
"policies": { "unauthenticated_action": "RedirectToLoginPage" }
}
]
}
Wenn ich die Homepage @http://mysite.azurewebsites.net/ zugreifen es navigiert mich immer wieder zur Login-Seite. Und nachdem ich mich eingeloggt habe und dann die Umleitung gemacht habe, bekomme ich folgende Fehler innerhalb des Log-Streaming.
2016-12-02T04:30:44 PID[11016] Verbose [Routes(Preview)] Attempting to load configuration from 'D:\home\site\wwwroot\authorization.json'.
2016-12-02T04:30:44 PID[11016] Critical System.Runtime.Serialization.SerializationException: There was an error deserializing the object of type Microsoft.Azure.AppService.Routes.RoutesConfig. Encountered unexpected character 'ï'. ---> System.Xml.XmlException: Encountered unexpected character 'ï'.
at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, XmlException exception)
at System.Runtime.Serialization.Json.XmlJsonReader.ReadAttributes()
at System.Runtime.Serialization.Json.XmlJsonReader.ReadNonExistentElementName(StringHandleConstStringType elementName)
at System.Runtime.Serialization.Json.XmlJsonReader.Read()
at System.Xml.XmlBaseReader.IsStartElement()
at System.Xml.XmlBaseReader.IsStartElement(XmlDictionaryString localName, XmlDictionaryString namespaceUri)
at System.Runtime.Serialization.XmlReaderDelegator.IsStartElement(XmlDictionaryString localname, XmlDictionaryString ns)
at System.Runtime.Serialization.XmlObjectSerializer.IsRootElement(XmlReaderDelegator reader, DataContract contract, XmlDictionaryString name, XmlDictionaryString ns)
at System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalIsStartObject(XmlReaderDelegator reader)
at System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName)
at System.Runtime.Serialization.XmlObjectSerializer.InternalReadObject(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
--- End of inner exception stack trace ---
at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(XmlDictionaryReader reader)
at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(Stream stream)
at Microsoft.Azure.AppService.Authentication.ModuleUtils.DecodeJson[T](Stream jsonStream)
at Microsoft.Azure.AppService.Routes.RoutesConfig.TryLoadFromFile(String configFilePath, Func`2 deserializer, RoutesConfig& config)
at Microsoft.Azure.AppService.Routes.RoutesConfig.TryLoadFromJsonFile(String configFilePath, RoutesConfig& config)
at Microsoft.Azure.AppService.Routes.RoutesModule.TryLoadRoutesConfig(HttpContextBase context)
at Microsoft.Azure.AppService.Routes.RoutesModule.<OnPostAuthenticateRequestAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.AppService.Authentication.HttpModuleDispatcher.<DispatchAsync>d__13.MoveNext()
2016-12-02T04:30:44 PID[11016] Information Sending response: 500.79 Internal Server Error
Zusätzliche Details. 1. Re-gestartet die Website nach der Veröffentlichung von Visual Studio wie erwähnt. 2. Diese/Admin-Pfad habe ich in AdminController. 3. Die authorization.json befindet sich im Stammverzeichnis der Site. Wenn ich zu PS D: \ home \ site \ wwwroot> navigiere, kann ich die Datei authorization.json sehen.
Ich weiß nicht, was ich falsch bezüglich der Syntax der Datei bin.
Können Sie Ihre Antwort aktualisieren authorization.json Datei, die Sie für Ihre Website verwendet einzubeziehen? Ich folgte dem msdn-Artikel, um diese Zeichen zu löschen, und versuchte es erneut und startete die Website neu, aber weiterhin navigierte ich zu/es erlaubte keine anonyme Anmeldung. – Mitul
@Mitul Ich habe meine Antwort aktualisiert. Bitte sehen Sie meine Aktualisierungen. –
Ich hatte auf Aktion zu nehmen, wenn die Anfrage nicht authentifiziert ist auf "Mit Google anmelden" eingestellt. Habe es in Anonyme Anfragen erlauben (keine Aktion) geändert und es funktioniert. Vielen Dank. – Mitul