新瓶旧酒ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类)

ASP.NET请求生命周期三张图:从HTTP.SYS到Page事件全解析 ASP.NET请求生命周期是理解Web应用执行时序与状态流转的基础概念,其核心原理在于IIS与ASP.NET集成管线的分层协作机制——HTTP.SYS负责内核级连接调度,IIS工作进程完成身份认证与URL路由,CLR中的HttpRuntime启动事件驱动的HttpApplication管线,最终由Page对象承载Web Forms的控件树生命周期。这一机制决定了Session初始化时机、ViewState序列化流程、异步异常捕获边界等关键技术价值,广泛应用于性能调优、500/404故障定位、内存泄漏排查及遗 阅读详情
[索引页]
[源码下载]


新瓶旧酒ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类)


作者: webabcd


介绍
ASP.NET AJAX的Sys.Services.AuthenticationService类、Sys.Services.ProfileService类、Sys.Services.ProfileGroup类完美地和ASP.NET 2.0的Membership和Profile进行了集成


关键
1、Sys.Services.AuthenticationService类的login()方法
    Sys.Services.AuthenticationService.login(userName, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext);
    ·userName - 用户名
    ·password - 密码
    ·isPersistent - 是否跨浏览器保存认证信息(持久保留)
    ·customInfo - 保留字段,可能在将来使用
    ·redirectUrl - 登录成功后重定向到的URL
    ·loginCompletedCallback - 登录成功后的回调函数
    ·failedCallback - 登录失败后的回调函数
    ·userContext - 用户上下文
    WebService中与其对应的方法 - public bool Login()

2、登录成功后的回调函数
    function LoginComplete(bool validCredentials, userContext, methodName)
    ·validCredentials - 是否成功通过了验证
    ·userContext - 用户上下文
    ·methodName - 调用的方法名

3、Sys.Services.AuthenticationService类的logout()方法
    Sys.Services.AuthenticationService.logout(redirectUrl, logoutCompletedCallback, failedCallback, userContext);
    ·redirectUrl - 注销成功后重定向到的URL
    ·logoutCompletedCallback - 注销成功后的回调函数
    ·failedCallback - 注销失败后的回调函数
    ·userContext - 用户上下文
    WebService中与其对应的方法 - public void Logout()

4、注销成功后的回调函数
    function LogoutComplete(result, userContext, methodName)
    ·result - 保留字段,可能在将来使用,始终为null
    ·userContext - 用户上下文
    ·methodName - 调用的方法名

5、Sys.Services.AuthenticationService类的属性
    ·defaultLoginCompletedCallback - 登录成功后的回调函数
    ·defaultLogoutCompletedCallback - 注销成功后的回调函数
    ·defaultFailedCallback - 登录或注销失败后的回调函数
    ·isLoggedIn - 当前用户是否已经登录
    ·path - authentication service路径
    ·timeout - 超时时间

6、Sys.Services.ProfileService类的load()方法
    Sys.Services.ProfileService.load(propertyNames, loadCompletedCallback, failedCallback, userContext);
    ·propertyNames - Profile属性名称数组
    ·loadCompletedCallback - 成功后的回调函数
    ·failedCallback - 失败后的回调函数
    ·userContext - 用户上下文
    WebService中与其对应的方法 - public IDictionary<string, object> GetAllPropertiesForCurrentUser()和public IDictionary<string, object> GetPropertiesForCurrentUser(string[] properties)

7、读取Profile成功后的回调函数
    function onLoadCompleted(numProperties, userContext, methodName)
    ·numProperties - 返回的Profile属性个数
    ·userContext - 用户上下文
    ·methodName - 调用的方法名

8、Sys.Services.ProfileService类的save()方法
    Sys.Services.ProfileService.load(propertyNames, saveCompletedCallback, failedCallback, userContext);
    ·propertyNames - Profile属性名称数组
    ·saveCompletedCallback - 成功后的回调函数
    ·failedCallback - 失败后的回调函数
    ·userContext - 用户上下文
    ·WebService中与其对应的方法 - public int SetPropertiesForCurrentUser(IDictionary<string, object> values)

9、保存Profile成功后的回调函数
    onSaveCompleted(numProperties, userContext, methodName)
    ·numProperties - 保存的Profile属性个数
    ·userContext - 用户上下文
    ·methodName - 调用的方法名

10、Sys.Services.ProfileService类的属性
    ·读取或设置某个Profile的属性要这么写 - Sys.Services.ProfileService.properties.FieldName; 
    ·defaultLoadCompletedCallback - 读取Profile成功后的回调函数
    ·defaultSaveCompletedCallback - 保存Profile成功后的回调函数
    ·defaultFailedCallback - 读取或保存Profile失败后的回调函数
    ·path - profile service路径
    ·timeout - 超时时间

11、Sys.Services.ProfileGroup类
    ·定义一个Profile组(同时需要在Web.config中定义)

12、登录或注销失败、读取或保存Profile失败后的回调函数
    function onFailed(error, userContext, methodName)
    ·error - Sys.Net.WebServiceError对象
    ·userContext - 用户上下文
    ·methodName - 调用的方法名

13、如果要 自动调用相关服务的话,则需要在web.config中的<configuration />节点下增加类似如下的配置
< webServices >
    
< authenticationService  enabled ="true"  requireSSL ="false" />
    
< profileService  enabled ="true"  
        readAccessProperties
="Age, Salary"
        writeAccessProperties
="Age, Salary"  
    
/>
</ webServices >


示例
AuthenticationService.asmx
<% @ WebService Language = " C# "  Class = " AuthenticationService "   %>

using  System;
using  System.Web;
using  System.Web.Services;
using  System.Web.Services.Protocols;
using  System.Web.Script.Services;

[WebService(Namespace 
=   " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
[ScriptService]
public   class  AuthenticationService : System.Web.Services.WebService
{
    
/// <summary>
    
/// 登录
    
/// </summary>
    
/// <param name="userName">用户名</param>
    
/// <param name="password">密码</param>
    
/// <param name="createPersistentCookie">是否跨浏览器保存认证信息(持久保留)</param>
    
/// <returns></returns>

    [WebMethod]
    
public bool Login(string userName, string password, bool createPersistentCookie)
    
{
        
//Place code here.

        System.Web.Security.FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
        
return true;
    }


    
/// <summary>
    
/// 注销
    
/// </summary>

    [WebMethod]
    
public void Logout()
    
{
        
//Place code here.
    }

}



ProfileService.asmx
<% @ WebService Language = " C# "  Class = " ProfileService "   %>

using  System;
using  System.Web;
using  System.Web.Services;
using  System.Web.Services.Protocols;
using  System.Web.Script.Services;
using  System.Collections.Generic;

[WebService(Namespace 
=   " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
[ScriptService]
public   class  ProfileService : System.Web.Services.WebService
{
    
/// <summary>
    
/// 获取用户的全部Profile
    
/// </summary>
    
/// <returns></returns>

    [WebMethod]
    
public IDictionary<string, object> GetAllPropertiesForCurrentUser()
    
{
        Dictionary
<string, object> dic = new Dictionary<string, object>();

        dic.Add(
"Age", 27);
        dic.Add(
"Salary", 100);

        Article article 
= new Article();
        article.Title 
= "Article Title From Server";
        article.PublishTime 
= DateTime.Now;

        dic.Add(
"Article", article);

        
return dic;
    }


    
/// <summary>
    
/// 获取用户的指定的Profile
    
/// </summary>
    
/// <param name="properties">属性名称数组</param>
    
/// <returns></returns>

    [WebMethod]
    
public IDictionary<string, object> GetPropertiesForCurrentUser(string[] properties)
    
{
        
//Place code here.
        return null;
    }


    
/// <summary>
    
/// 保存用户的Profile
    
/// </summary>
    
/// <param name="values">用户的Profile的字典数据</param>
    
/// <returns></returns>

    [WebMethod]
    
public int SetPropertiesForCurrentUser(IDictionary<string, object> values)
    
{
        
//Place code here.
        return values.Count;
    }

}


/// <summary>
/// Article实体类
/// </summary>
/// <remarks>
/// 示例而已,实际项目中要继承自System.Web.Profile.ProfileBase
/// </remarks>

public   class  Article
{
    
private string _title;
    
/// <summary>
    
/// 文章标题
    
/// </summary>

    public string Title
    
{
        
get { return _title; }
        
set { _title = value; }
    }


    
private DateTime _publishTime;
    
/// <summary>
    
/// 文章发布日期
    
/// </summary>

    public DateTime PublishTime
    
{
        
get { return _publishTime; }
        
set { _publishTime = value; }
    }

}


Sample.aspx
<% @ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Sample.aspx.cs"
    Inherits
="ClientScripting_SysServices_Sample" Title="Sys.Services命名空间下的类" 
%>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="Server" >
    
< div >
        帐号:
< input  type ="text"  id ="txtUserId"   /></ div >
    
< div >
        密码:
< input  type ="password"  id ="txtPassword"   /></ div >
    
< div >
        
&nbsp; </ div >
    
< div >
        
< input  type ="button"  id ="btnLogin"  value ="登录"  onclick ="btnLogin_click()"   />
        
< input  type ="button"  id ="btnLogout"  value ="注销"  onclick ="btnLogout_click()"   /></ div >
    
< div >
        
&nbsp; </ div >
    
< div >
        年龄:
< input  type ="text"  id ="txtAge"   /></ div >
    
< div >
        薪水:
< input  type ="text"  id ="txtSalary"   /></ div >
    
< div >
        
< input  type ="button"  id ="btnSave"  value ="保存Profile"  onclick ="btnSave_click()"   />
        
< input  type ="button"  id ="btnLoad"  value ="读取Profile"  onclick ="btnLoad_click()"   />
    
</ div >
    
< div >
        
&nbsp; </ div >
    
< div  id ="result"   />

    
< script  type ="text/javascript" >
        
var userId;
        
var password;
        
var login;
        
var logout;
        
var age;
        
var salary

        
function pageLoad()
        
{
            userId 
= $get("txtUserId");
            password 
= $get("txtPassword");
            login 
= $get("btnLogin");
            logout 
= $get("btnLogout");
            age 
= $get("txtAge");
            salary 
= $get("txtSalary");
            
            
// path - authentication service路径
            $get("result").innerHTML = "AuthenticationService path:" + Sys.Services.AuthenticationService.get_path() + "<br />";
            
// timeout - 超时时间
            $get("result").innerHTML += "AuthenticationService timeout:" + Sys.Services.AuthenticationService.get_timeout() + "<br />";
            
// path - profile service路径
            $get("result").innerHTML += "ProfileService path:" + Sys.Services.ProfileService.get_path() + "<br />";
            
// timeout - 超时时间
            $get("result").innerHTML += "ProfileService timeout:" + Sys.Services.ProfileService.get_timeout() + "<br />";
        }
       
                
        
function btnLogin_click()
        
{
            
// defaultLoginCompletedCallback - 登录成功后的回调函数
            Sys.Services.AuthenticationService.set_defaultLoginCompletedCallback(onLoginCompleted);
            
// defaultFailedCallback - 登录或注销失败后的回调函数
            Sys.Services.AuthenticationService.set_defaultFailedCallback(onFailed);
            
            Sys.Services.AuthenticationService.login
            (
                userId.value, 
// 用户名
                password.value, // 密码
                false, // 是否跨浏览器保存认证信息(持久保留)
                null, // 保留字段,可能在将来使用
                null, // 登录成功后重定向到的URL
                null, // 登录成功后的回调函数
                null, // 登录失败后的回调函数
                "用户上下文" // 用户上下文
            );
        }

        
        
function btnLogout_click()
        
{
            
// defaultLogoutCompletedCallback - 注销成功后的回调函数
            Sys.Services.AuthenticationService.set_defaultLogoutCompletedCallback(onLogoutCompleted);
            
// defaultFailedCallback - 登录或注销失败后的回调函数
            Sys.Services.AuthenticationService.set_defaultFailedCallback(onFailed);

            Sys.Services.AuthenticationService.logout
            (
                
null, // 注销成功后重定向到的URL
                null, // 注销成功后的回调函数
                null, // 注销失败后的回调函数
                null // 用户上下文
            );
        }

        
        
function onLoginCompleted(validCredentials, userContext, methodName)
        
{
            password.value 
= "";
            
            
// validCredentials - 是否成功通过了验证
            // userContext - 用户上下文
            // methodName - 调用的方法名
            if (validCredentials) 
            
{
                userId.value 
= "";
                
                $get(
"result").innerHTML = "登录成功" + "<br />";
                $get(
"result").innerHTML += "用户上下文:" + userContext + "<br />";
                $get(
"result").innerHTML += "调用的方法名为:" + methodName + "<br />";
            }

            
else
            
{
                $get(
"result").innerHTML = "登录失败" + "<br />";
            }

            
            
// isLoggedIn - 当前用户是否已经登录
            var status = Sys.Services.AuthenticationService.get_isLoggedIn();
            $get(
"result").innerHTML += "登录状态:" + status + "<br />";
        }

        
        
function onFailed(error, userContext, methodName)
        
{    
            
// error - Sys.Net.WebServiceError对象
            // userContext - 用户上下文
            // methodName - 调用的方法名
            $get("result").innerHTML += "错误信息:" + error.get_message() + "<br />";
        }

        
        
function onLogoutCompleted(result, userContext, methodName) 
        
{
            
// result - 保留字段,可能在将来使用,始终为null
            // userContext - 用户上下文
            // methodName - 调用的方法名
            alert("成功调用" + methodName) + "<br />";
        }

        
        
        
function btnLoad_click()
        
{
            
// defaultLoadCompletedCallback - 读取Profile成功后的回调函数
            Sys.Services.ProfileService.set_defaultLoadCompletedCallback(onLoadCompleted);
            
// defaultFailedCallback - 读取或保存Profile失败后的回调函数
            Sys.Services.ProfileService.set_defaultFailedCallback(onFailed);
            
            Sys.Services.ProfileService.load
            (
                
null, // Profile属性名称数组
                null, // 成功后的回调函数
                null, // 失败后的回调函数
                null // 用户上下文
            );
        }

        
        
function btnSave_click()
        
{
            
// defaultSaveCompletedCallback - 保存Profile成功后的回调函数
            Sys.Services.ProfileService.set_defaultSaveCompletedCallback(onSaveCompleted);
            
// defaultFailedCallback - 读取或保存Profile失败后的回调函数
            Sys.Services.ProfileService.set_defaultFailedCallback(onFailed);
            
            Sys.Services.ProfileService.properties.Age 
= age.value;
            Sys.Services.ProfileService.properties.Salary 
= salary.value;
            
            
// 定义一个Profile组(同时需要在Web.config中定义)
            Sys.Services.ProfileService.properties.Article = new Sys.Services.ProfileGroup();
            Sys.Services.ProfileService.properties.Article.Title 
= "Article Title";
            Sys.Services.ProfileService.properties.Article.PublishTime 
= new Date();

            Sys.Services.ProfileService.save
            (
                
null, // Profile属性名称数组
                null, // 成功后的回调函数
                null, // 失败后的回调函数
                null // 用户上下文
            );
        }

        
        
function onLoadCompleted(numProperties, userContext, methodName)
        
{
            
// numProperties - 返回的Profile属性个数
            // userContext - 用户上下文
            // methodName - 调用的方法名
            $get("result").innerHTML = "通过Profile读取的属性的数量为:" + numProperties.toString() + "<br />";
            $get(
"result").innerHTML += "Age:" + Sys.Services.ProfileService.properties.Age + "<br />";
            $get(
"result").innerHTML += "Article Title:" + Sys.Services.ProfileService.properties.Article.Title + "<br />";    
            $get(
"result").innerHTML += "Article PublishTime:" + Sys.Services.ProfileService.properties.Article.PublishTime.format("yyyy-MM-dd") + "<br />";
        }


        
function onSaveCompleted(numProperties, userContext, methodName)
        
{
            
// numProperties - 保存的Profile属性个数
            // userContext - 用户上下文
            // methodName - 调用的方法名
            $get("result").innerHTML = "通过Profile保存的属性的数量为:" + numProperties.toString() + "<br />";
        }

    
</ script >

</ asp:Content >

ScriptManager的设置
         < asp:ScriptManager  ID ="ScriptManager1"  runat ="server" >
            
< AuthenticationService  Path ="~/ClientScripting/SysServices/AuthenticationService.asmx"   />
            
< ProfileService  Path ="~/ClientScripting/SysServices/ProfileService.asmx"   />
        
</ asp:ScriptManager >

Web.config中的相关设置(在<system.web />节点下)
     < profile  enabled ="true" >
      
< properties >
        
< group  name ="Article" >
          
< add  name ="Title"  type ="System.String"   />
          
< add  name ="PublishTime"  type ="System.DateTime"   />
        
</ group >
      
</ properties >
    
</ profile >

运行结果
1、页面加载后
AuthenticationService path:/Web/ClientScripting/SysServices/AuthenticationService.asmx
AuthenticationService timeout:0
ProfileService path:ProfileService.asmx
ProfileService timeout:0

2、单击“登录”按钮
登录成功
用户上下文:用户上下文
调用的方法名为:Sys.Services.AuthenticationService.login
登录状态:true

3、单击“注销”按钮
弹出框,信息:成功调用Sys.Services.AuthenticationService.logout

4、单击“保存Profile”按钮
通过Profile保存的属性的数量为:4

5、单击“读取Profile”按钮
通过Profile读取的属性的数量为:3
Age:27
Article Title:Article Title From Server
Article PublishTime:2007-07-12


OK
[源码下载]
宏景eHR /ajax/ajaxService SQL注入漏洞复现 ​宏景eHR /ajax/ajaxService 接口处存在SQL注入漏洞,,未经身份验证的远程攻击者通过利用SQL注入漏洞配合数据库xp_cmdshell可以执行任意命令,从而控制服务器。经过分析与研判,该漏洞利用难度低,建议尽快修复。 阅读详情

相关推荐

【LTspice】005 伯德图绘制

目录 1 伯德图介绍 2 LTspice 截止频率验证 3 LTspice中如何添加光标 4 LTspice中如何将 幅频 和 相频曲线分开 1 伯德图介绍 Bode图由对数幅频特性和对数相频特性两张图组成。伯德图_百度百科 (1)对数幅频特性曲线 对数幅频特性是频率特性的对数值L(ω)=20lgA (ω)(dB)与频率ω的关系曲线;对数幅频特性的纵轴采用线性分度,为幅值的分贝数,即 L(ω)=20lgA(ω),A(ω)每增加10倍,L(ω)增加20dB;横坐标采用对数分度,即横轴上的ω取

m0_59642765的博客 1万+

【漏洞复现】宏景HCM人力资源信息管理系统——getSdutyTree——SQL注入

宏景HCM人力资源信息管理系统是一款全面覆盖人力资源管理各模块的软件,旨在帮助企事业单位构建高绩效组织,推动组织健康成长,提升组织软实力。其getSdutyTree接口处对传入的数据没有预编译和充足的校验,导致该接口存在SQL注入漏洞,未授权的攻击者可获取数据库敏感信息。

LongL_GuYu的博客 1944

Cesium创建无人机视锥,同步视锥与鹰眼地图视角,实现视锥键盘控制。解决视锥初始化位置不准确问题等

本文描述了一个基于Cesium的3D视锥体可视化系统开发过程。系统实现了主视图与鹰眼视图的双屏联动,支持通过键盘控制视锥体的空间移动(WASD前后左右,Q/E旋转,C/Z升降),并实时同步更新两个视图。关键技术包括:1)基于主视图Scene创建Camera实现视锥体精确绘制;2)通过PerspectiveFrustum设置视锥参数;3)建立双视图的相机位置及视角同步机制。目前暂未实现视锥体far/near边界在鹰眼视图中的可视化,该系统可应用于无人机视角监控等三维场景交互需求。

coder_bin的博客 1589

sysServices

SNMP sysServices.0介绍  分类: 系统运维 sysServices.0介绍: 是一个sum值,通过这个值可以知道这个实体提供ISO哪几层的服务! 通过查询Sysservices 可得到:  Request : Get  .1.3.6.1.2.1.1.7.0  Creating Session..  Displaying results..

下木的博客 1935

STM32/GD32以太网开发避坑指南:ZLG EPORTM模块调试实战(含YT8512H配置)

本文针对STM32/GD32平台使用ZLG EPORTM模块进行以太网开发时遇到的常见问题,提供了详细的调试实战指南。重点解析了从传统PHY驱动迁移到YT8512H芯片的核心步骤,包括软件复位延时、RMII时钟配置等关键陷阱,并分享了LWIP集成与稳定性验证的实用经验,帮助开发者高效避坑。

rice5的博客 1160

单细胞空间转录组分析流程学习python版(三)

空转python版学习

zfyyzhys的博客 2084

新瓶旧酒ASP.NET AJAX(9) - 客户端脚本编程(Sys.Net命名空间下的WebServiceProxy)

[索引页][×××] 新瓶旧酒ASP.NET AJAX(9) - 客户端脚本编程(Sys.Net命名空间下的WebServiceProxy、WebServiceError、Generated Proxy Classes以及调用WebService、PageMethod)作者:webabcd介绍使用ASP.NET AJAX调用WebService(简单类型和复杂对象、JSON...

weixin_34177064的博客 94

Android 13.0 设置默认屏幕亮度百分比

在13.0的系统ROM产品开发中,在一些产品开发中,对于设置默认屏幕亮度和屏幕亮度百分比的功能,在开发中也是常见的功能,在10.0的平台设置可能有一些不同,一般的都是在SettingProvider中设置就可以了 在11.0以后的系统中设置默认屏幕亮度的方法就不同了,接下来具体分析功能的实现

安卓兼职framework和app工程师的博客 1560

系统地学习ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类)

     摘要: ASP.NET AJAX的Sys.Services.AuthenticationService类、Sys.Services.ProfileService类、Sys.Services.ProfileGroup类完美地和ASP.NET 2.0的Membership和Profile进行了集成  阅读全文webabcd 2007-07-12 08:51 发表评论...

yanhuanwang 169

YOLO26全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1032

第四章:无感FOC的平滑启动艺术:告别“咔哒”声与抖动

无感FOC启动技术面临"先有位置还是先有旋转"的核心矛盾,导致常见故障包括位置失准、负载突变等。基础方案采用开环I/F控制,但存在重载启动困难等局限性。进阶方案结合IPD位置检测技术,通过脉冲电压注入法精准定位转子初始位置。关键技术在于开环到闭环的平滑切换,采用混合观测器设计和相位对齐技术。量产优化包括自适应参数整定和故障恢复机制,确保启动可靠性和一致性。该系统工程方案可有效解决启动抖动、异响等问题,提升用户体验。

汽车软件开发 730

深入Atlas系列:探究Application Services(3) - 自定义客户端Profile Service支持

  如果不能在客户端进行自定义的话,Profile Service的自定义能力还是远远不够的。虽然Profile Service没有提供一种“官方”的客户端自定义支持,不过事实上“自定义”能力“天然”地存在与客户端里。为什么?因为整个客户端是由JavaScript实现的,这种灵活的语言使得我们...

chuifuhuo6864的博客 111

SAP特殊库存全解析:供应商寄售、客户寄售、分包与项目库存说明

客户寄售库存(Customer Consignment)是企业将物料存放于客户处,客户实际领用后才确认销售收入。这种模式能缩短交货周期、提高客户满意度,但需严格跟踪寄售库存的数量与状态。

我小时候很黑的博客 818

Understanding ASP.NET AJAX Authentication and Profile Application Services

IntroductionAs part of the .NET Framework 3.5, Microsoft is delivering a sizable environment upgrade; not only is a new development environment available, but the new Language-Integrated Query (LINQ

SatSun工作室 1691

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

在ASP.NET Atlas中结合Membership进行身份验证

作者:Dflying Chen (http://dflying.cnblogs.com/ ) ASP.NET Atlas可以使用ASP.NET中的Membership来进行用户身份验证,并在验证成功后自动设定相应的Cookie。Atlas中的身份验证是通过Sys.Services._AuthenticationService类的一个实例:Sys.Services.AuthenticationSe...

weixin_33924770的博客 116

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Ajax学习笔记(15):使用ASP.NET AJAX提供的Authentication Service

1. Forms认证 HttpContext.Current.User.Identity 当前用户验证信息类(Asp.net身份验证模型时) 登录时: FormsAuthentication.SetAuthCookie()方法 注销时: FormsAuthentication.Sigout()方法 2. Authentication Service认证(Ajax) Web.Co...

220

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Visual Studio 2008中ASP.NET AJAX的新应用程序服务:Role Application Service

ASP.NET AJAX在目前版本中已经内建了两种Application Service:用户身份认证(Authentication Service)和用户个性化(Profile)(请参考:《在ASP.NET AJAX中使用应用程序服务和本地化(0):目录》)。 在最新的Visual Studio 2008 (Orcas)中,ASP.NET AJAX又添加了一个新的Application Ser...

weixin_30593261的博客 109

深入Atlas系列:探究Application Services(2) - 自定义服务器端Profile Service支持

  在上一篇文章中,我们讨论了使用ASP.NET AJAX默认的Profile Service。一般来说,它已经能够迎合大多数应用的需要了。不过除此之外,ASP.NET AJAX还提供了让我们自定义Profile Service的机制。要自定义Profile Service,一般来说要分为两步...

chuifuhuo6864的博客 139

WCF Data Services实例:ASP.net AJAX访问

本文参考 Code.msdn的例子,在此基础上实现了一个参考例子,代码放在了: http://dskit.codeplex.com 如果想在Asp.net MVC应用以JavaScript中访问WCF Data Service服务,以下是使用Microsoft AJAX Library库进行处理的例子 var dataContext; var queryObject, queryObject...

weixin_33853794的博客 83

客户端访问Web Service方法的一个细节

之前遇到一个要求,需要能够取消一个正在进行中的Web Service。这也是我第一次遇到这个功能,不过不难,我想。既然ASP.NET AJAX的客户端与服务器端通信完全通过Microsoft AJAX Library的异步通信层进行,那么我们只要得到正在请求Web Service的Sys.Ne...

chuifuhuo6864的博客 93

Asp.net Ajax中sys未定义错误

 在Web.config中的结中加入下列代码                       

学习的约束力,提醒自己 681
上一篇: [翻译]在Visual Studio 2005中调试SQL Server 2005的存储过程
下一篇: [翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(3) - 触发自定义事件
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值