2017-01-24 21 views
5

我已經在Visual Studio 2017中創建了一個新的.NET Core MVC應用程序並啓用了多租戶認證。
我已經完成了配置(ClientId,Authority等),但是當我調試應用程序時,Startup.cs中有一個異常,特別是app.useOpenIdConnectAuthentication方法。Startup.cs - 'value'中的路徑必須以'/'開頭

給出的例外是

System.ArgumentException:在 '價值' 的路徑必須以 '/' 開始。

當談到C#和.NET Core時,我有點新手,所以我不確定我是否缺少明顯的東西。主要關鍵點在於調試器提到參數'value',因爲我在代碼中看不到任何提及。除了將配置項添加到appsettings.json以外,Visual Studio生成的默認模板之外沒有任何更改。

+2

如果在問題中包含startup.cs代碼將會很有幫助。 'value'是*參數*的名稱,而不是代碼中的某個名稱。 – Amy

+1

你有沒有像LoginPath或類似的路徑在auth配置中配置?這些路徑/路由應以'/' – Developer

+0

開頭,可能是OpenIdConnectAuthenticationOptions屬性中的一個無效URL。正如#Amy所說,你需要發佈代碼。 – RaoulRubin

回答

2

由於問題中沒有代碼,所以我會盡量使一般答案儘可能。
當您使用此重載PathString.FromUriComponent(string)和字符串不與/字符開始

,會出現以前的例外,例如,下面的代碼會拋出異常:

PathString.FromUriComponent("controllerName/actionName"); // throw exception 

並修復以前的例外,你可以這樣寫它

PathString.FromUriComponent("/controllerName/actionName"); 

當然,這將是一個相對路徑。

如果你想寫一個絕對路徑,(而不是開始/你的字符串),則必須使用此方法,它利用了Uri代替string

這裏有一個例子

的另一個重載
PathString.FromUriComponent(new Uri("https://localhost:8000/controller/action/")) 
相關問題