不废话了。翠花,上代码:
ServiceContracts:
IMembershipService.cs:
ServiceImplementation:
MembershipService.cs:
ServiceContracts:
IMembershipService.cs:
1
using System;
2
using System.Web.Security;
3
using System.ServiceModel;
4![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
namespace Infrastructure.ServiceContracts
6
{
7
[ServiceContract(Namespace = http://Infrastructure.ServiceContracts/, Name = "IMembershipService", SessionMode = SessionMode.Allowed)]
8
public interface IMembershipService
9
{
10
[OperationContract]
11
MembershipUser CreateUser(string username, string password);
12
13
[OperationContract(Name = "CreateUserWithEmail")]
14
MembershipUser CreateUser(string username, string password, string email);
15
16
[OperationContract(Name = "CreateUserWithQuestion")]
17
MembershipUser CreateUser(string username, string password, string email,
18
string passwordQuestion,
19
string passwordAnswer,
20
bool isApproved,
21
out MembershipCreateStatus status
22
);
23
24
[OperationContract(Name = "CreateUserWithProviderUserKey")]
25
MembershipUser CreateUser(string username, string password, string email,
26
string passwordQuestion,
27
string passwordAnswer,
28
bool isApproved,
29
Object providerUserKey,
30
out MembershipCreateStatus status
31
);
32![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
[OperationContract(Name = "DeleteUserDefault")]
34
bool DeleteUser(string username);
35![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
[OperationContract]
37
bool DeleteUser(string username, bool deleteAllRelatedData);
38![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
[OperationContract]
40
MembershipUserCollection GetAllUsers();
41![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
[OperationContract(Name = "GetAllUsersByPaging")]
43
MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords);
44![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
[OperationContract]
46
MembershipUser GetUser();
47![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
[OperationContract(Name = "GetUserIsOnline")]
49
MembershipUser GetUser(bool userIsOnline);
50![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
[OperationContract(Name = "GetUserByProviderUserKey")]
52
MembershipUser GetUser(Object providerUserKey);
53![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
[OperationContract(Name = "GetUserByUsername")]
55
MembershipUser GetUser(string username);
56![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
[OperationContract(Name = "GetUserByKeyAndIsOnline")]
58
MembershipUser GetUser(Object providerUserKey, bool userIsOnline);
59![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
[OperationContract(Name = "GetUserByNameAndIsOnline")]
61
MembershipUser GetUser(string username, bool userIsOnline);
62![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
[OperationContract]
64
string GetUserNameByEmail(string emailToMatch);
65![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
[OperationContract]
67
void UpdateUser(MembershipUser user);
68![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
[OperationContract]
70
bool ValidateUser(string username, string password);
71
}
72
}
73![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
ServiceImplementation:
MembershipService.cs:
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.ServiceModel;
5
using System.Web.Security;
6
using Infrastructure.ServiceContracts;
7![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
namespace CoralMIS.Infrastructure.ServiceImplementation
9
{
10
[ServiceBehavior(Name = "MembershipService",
11
Namespace = http://Infrastructure.ServiceImplementation/2007/06)]
12
public class MembershipService : IMembershipService
13
{
14
IMembershipService 成员
125
}
126
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
125
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
至于Role的实现,请参考上面。app.config,web.config中的<System.Web>原来怎么配置现在还怎么配置,我在这里只是简单地给出了一个思路,也可以很方便的改为Web Service,Remoting服务包装。欢迎大家拍砖:)
BTW:《Programming.WCF.Services》这本书里的Credentials Manager utility也有上Membership和Role的包装,可是在我看来过于复杂了:),所以自己做了上面的工作。PWS这本书的随书代码(WCF的一些扩展,一些工具,帮助类)写得很不错,我手上有,不知道是否应该放出来跟大家Sharing,请各位指点,谢谢。