2015-09-26 55 views
0

我在我的Account控制器中有此Confirm方法,當用戶點擊link時,我將其重定向到他們的電子郵件地址以激活其帳戶。返回的視圖顯示激活是否成功的消息。如何使ASP.NET MVC控制器的GET方法只從鏈接調用?

問題是,如果用戶輸入網址.../account/confirm/...,他們也將能夠看到此視圖(此視圖應僅適用於已收到帶鏈接的電子郵件的用戶)。

有什麼辦法可以指定只能從鏈接調用這個方法嗎?

回答

2

沒有「從鏈接調用」這樣的事情。有人在URL中輸入內容,從郵件中複製粘貼URL或直接單擊郵件中的鏈接,所有這些在控制器中都完全相同。

唯一的區別是從HTTP(非HTTPS)頁面點擊鏈接,其中有時會設置引用鏈接。你不應該依賴那個,因爲它是用戶提供的,因此可以由用戶修改。某些瀏覽器設置或插件完全禁用了引薦來源。

添加一個令牌到URL並檢查。如果它不存在或無效,則顯示一個404或任何你想要的。

+0

謝謝!你爲我節省了很多時間... –

相關問題