如果我想獲得電子郵件地址爲'[email protected]'的用戶,我如何將它作爲linq中的參數傳遞?如何安全地將參數傳遞到linq到sql
即:
var a = from u in Users
where u.Email = @email
Select u;
所以這會在我的方法可以使用:
public static GetuserByEmail(string email)
難道我只是通過在變量或?
如果我想獲得電子郵件地址爲'[email protected]'的用戶,我如何將它作爲linq中的參數傳遞?如何安全地將參數傳遞到linq到sql
即:
var a = from u in Users
where u.Email = @email
Select u;
所以這會在我的方法可以使用:
public static GetuserByEmail(string email)
難道我只是通過在變量或?
Linq To SQL自動爲您處理SQL注入保護。如果您擔心SQL注入,那麼從用戶那裏傳入參數是安全的。
它會自動參數化您傳入的參數並對其進行消毒。
如果您擔心XSS,那麼您可以輸出Html.Encode()
以確保它安全地傳回UI。
public User GetUserByEmail(string email)
{
User a = (from u in db.Users
where u.Email == email
select u).Single();
return a;
}
我目前不在IDE的前面,因此代碼可能不是通過合成正確的方式。
var a = from u in Users
where u.Email == email
select u;
將很好地工作(LINQ to SQL中會生成一個參數化的SQL查詢)
PS:你需要兩個 '=' 爲等於操作
它做的SQL注入你嗎?這聽起來不太好:)最好說LinqToSql創建參數化查詢,以避免SQL注入的危險。 – 2010-04-08 20:00:32
我沒有說'是',我說'處理'。 – 2010-04-08 20:01:42
他的發言對我有意義。 : - / – Jaxidian 2010-04-08 20:02:00