我正在爲客戶端編寫Web應用程序。用戶將擁有一次性密鑰,他們將使用該密鑰初始嚮應用程序標識自己。一旦應用程序驗證密鑰是否有效,它將把它們帶到一個頁面,在那裏他們可以創建一個普通賬戶用於所有後續登錄。創建賬戶頁面只能在輸入密鑰後才能訪問,否則不能訪問。即,用普通賬戶登錄的用戶不應該訪問它。 這是使用自定義成員資格提供程序的asp.net 3.0。如何在ASP.Net應用程序中設置委託人
我的計劃是創建一個基於密鑰的臨時賬號與身份驗證與該帳戶的用戶。這使他們能夠訪問創建用戶頁面(該頁面受到位置標記的保護),從而可以在其中創建正式帳戶。然後我用他們的新帳戶驗證它們並刪除臨時帳戶。 流程是:用戶進入一個他們輸入密鑰的頁面。如果密鑰有效,我創建臨時帳戶,調用FormsAuthentication.SetAuthCookie,並重定向到創建帳戶頁面。儘管看起來有點複雜,但這一切都有效。
的問題是創建用戶頁面可用於任何身份驗證的用戶;我只希望它在進入密鑰和創建正式賬戶之間的時間內可用。所以我想我會爲臨時帳戶創建一個特殊角色,並使創建用戶頁面只能訪問該角色,而不能訪問其他用戶。我使用特殊角色創建了自己的Principal對象,並嘗試在驗證臨時帳戶時設置它,但無法使其工作。
我真的希望我沒有編寫自定義的角色提供只是做到這一點。
我該如何做這項工作?有一個更簡單的方法!