Projenizde sayfayi açan kişinin diş adresi ile işlem yapıcaksanız.
var ipAddress = string.Empty;
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
{
ipAddress = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"] != null && System.Web.HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"].Length != 0)
{
ipAddress = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"];
}
else if (System.Web.HttpContext.Current.Request.UserHostAddress.Length != 0)
{
ipAddress = System.Web.HttpContext.Current.Request.UserHostName;
}
if (ipAddress == "111.111.111.111")
{
//Yapılacak işlem
}
else
{
//Yapılacak işlem
}
Kullanmanız gereken Kod bloğu bu şekildedir. Hızlı geri bir şekilde bulaşabılırsınız dış ip adresine
'Validation of viewstate MAC failed' hatasi, sayfada uzun süre bekleyip, sayfayi tetikleyecek herhangi birseye tikladiginiz veya timer ile sayfayi yenilediğiniz vakit karsiniza çikacaktir. Sayfa post edildigi vakit state'te takilip hata ekrani çikaracaktir.
"Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster." gibi bir hata alıyorsanız;
Web confgi içinde System.Web altına;
<system>
<pages validateRequest="false" enableEventValidation="false" enableViewStateMac="false" viewStateEncryptionMode="Never">
</system>
evet arkadaşlar bu kodlarımızı webconfiğin içine yazdığımız da artık machinekey hatası almıyacağız.
Görüşmek Üzere;
Bu sorunu ben şu şekilde çözdum ilk önce db.veritabaniAdi.SqlQuery("").Tolist(); ile cekiyordum veriyi sonra
db.veritabaniAdi.SqlQuery("").Select(x=> new yeniClass(){
Id=x.ID
}).Tolist();