簡體   English   中英

使用自定義登錄提供程序發布Azure移動服務(支持.NET)

[英]Publishing Azure Mobile Service with Custom Login Provider (.NET Backed)

我一直在嘗試為人們添加一種登錄我的通用Windows應用程序的方法,並成功地允許他們通過Microsoft,Google,Twitter和Facebook登錄(僅因為Azure直接支持這些登錄),但是我可以似乎無法正確設置自定義登錄提供程序。

我嘗試按照本教程進行操作 它可以在本地運行,但是一旦發布到天藍色,它就會失敗。

這是日志的第一行:Exception = System.NotSupportedException:沒有與原始類型'SByte'的概念側類型'SByte'相對應的存儲類型。

我假設問題在於控件如何存儲用戶:

todoContext context = new todoContext();
context.Users.Add(newUser);
context.SaveChanges();

這是否將其保存到本地數據庫或其他內容而不是Azure上的數據庫。 如果是這樣,我將如何將用戶存儲到azure數據庫中?

編輯:雖然我認為我已經找到問題了。 再次嘗試並將本地移動服務連接到我的azure數據庫后,出現此錯誤:

{“ message”:“發生錯誤。”,“ exceptionMessage”:“不存在與原始類型'SByte'的概念側類型'SByte'相對應的存儲類型。”,“ exceptionType”:“ System.NotSupportedException” ,“堆棧跟蹤”:”

我現在假設它無法創建與我的User類相對應的表:

public class User : EntityData
    {
        public string Username { get; set; }
        public byte[] Salt { get; set; }
        public byte[] SaltedAndHashedPassword { get; set; }
    }

雖然,我不知道為什么我已經有一個表時為什么要嘗試創建表...是否需要更改設置?

除此以外...

如何將Salt和SaltedAndHashedPassword存儲在數據庫中? 我是否必須將它們轉換為字符串,然后以某種方式再次將其轉換回? 那有可能嗎?

另外,為什么它能夠在本地創建用戶表,而不是在Azure上創建表?

編輯:

我的移動服務肯定有問題,因為當我嘗試使用表api來獲取隨它一起安裝的todoItems時,它返回了我上面提供的相同錯誤。

顯然,這僅在您對移動服務采用代碼優先方法時才有效。

我通過創建新的移動服務並將其連接到新的數據庫來修復它。 然后,我通過移動服務在門戶上為您提供的下載鏈接創建了一個新的移動服務項目。 然后,我創建了需要作為類的所有模型,更新了DataContext,並創建了所有控制器。

即使我已經開始使用它,我仍然想弄清楚如何使用數據庫優先方法來做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM